﻿using Kw.Combinatorics;
using System;

namespace Kw.CombinatoricsExamples
{
    class PermutationExample01
    {
        static void Main ()
        {
            Permutation permu3 = new Permutation (3);

            foreach (Permutation permuRow in permu3.GetRows ())
                Console.WriteLine (permuRow);

            foreach (Permutation permuRow in new Permutation (4, 6).GetRows ())
                Console.WriteLine (permuRow);
        }

        /* Output:

        { 0, 1, 2 }
        { 0, 2, 1 }
        { 1, 0, 2 }
        { 1, 2, 0 }
        { 2, 0, 1 }
        { 2, 1, 0 }
        { 1, 0, 2, 3 }
        { 1, 0, 3, 2 }
        { 1, 2, 0, 3 }
        { 1, 2, 3, 0 }
        { 1, 3, 0, 2 }
        { 1, 3, 2, 0 }
        { 2, 0, 1, 3 }
        { 2, 0, 3, 1 }
        { 2, 1, 0, 3 }
        { 2, 1, 3, 0 }
        { 2, 3, 0, 1 }
        { 2, 3, 1, 0 }
        { 3, 0, 1, 2 }
        { 3, 0, 2, 1 }
        { 3, 1, 0, 2 }
        { 3, 1, 2, 0 }
        { 3, 2, 0, 1 }
        { 3, 2, 1, 0 }
        { 0, 1, 2, 3 }
        { 0, 1, 3, 2 }
        { 0, 2, 1, 3 }
        { 0, 2, 3, 1 }
        { 0, 3, 1, 2 }
        { 0, 3, 2, 1 }

        */
    }
}
